Various electro-optical systems have been developed for reading optical indicia, such as bar codes. A bar code is a coded pattern of graphical indicia comprised of a series of bars and spaces of varying widths, the bars and spaces having differing light reflecting characteristics. Systems that read and decode bar codes employing CCD or CMOS-based imaging systems are typically referred to as imaging-based bar code readers or bar code scanners.
Imaging systems include CCD arrays, CMOS arrays, or other imaging pixel arrays having a plurality of photosensitive elements or pixels. Light reflected from a target image, e.g., a target bar code is focused through a lens of the imaging system onto the pixel array. Output signals from the pixels of the pixel array are digitized by an analog-to-digital converter. Decoding circuitry of the imaging system processes the digitized signals and attempts to decode the imaged bar code.
The ability of an imaging system to successfully decode an imaged bar code is directly dependent upon the ability to move the lens to a suitable position whereby a satisfactorily clear image of the target bar code is focused onto the pixel array. The imaging system focusing lens is driven by a motor, such as a piezo motor, along an axis perpendicular to the pixel array or sensor plane to permit focusing of the bar code image on the pixel array.
Whether the imaging system is housed in a handheld, portable bar code reader or a permanently mounted reader, the user of the device cannot be expected to manually focus the imaging system by moving the lens, thus, there is a need for an automatic focusing system or auto focus system for an imaging system.
Further, since imaging and decoding of a bar code must be completed in a very limited time frame, the auto focus system must be very rapid. Read times for barcode scanners range from 80 milliseconds (ms.) to a few hundred milliseconds, and read time differences of 10 ms. can result in measurable differences in productivity. A maximum read time of 100 ms. for linear barcodes is the target requirement for typical bar code readers.
For barcode scanning, the time typically allotted for auto focusing is on the order of 20 ms. The time required for a typical piezo motor to move the focusing lens over a range of 100 micrometers (um.) is approximately 10 ms. Thus only 10 ms. is available for an auto focus algorithm to determine the optimal focus position, which is challenging on a modern embedded microprocessor.
Bar code imaging systems require a variable focus optical system to maximize barcode reading range and deliver high quality images over a range of distances. The high scan rate for barcode reading imposes a high-speed requirement on the auto focusing technique to be used in the imaging system.
What is needed is a high speed, robust automatic focusing system for an imaging-based automatic identification system, such as a bar code reader.